package cn.sfrog.project.biz.admin.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


@Data
@ApiModel(description = "学研项目表单VO")
public class BizStudyProjectFormVO {
    @ApiModelProperty("id")
    private Long id;
    @ApiModelProperty("医院id")
    private Long hospitalId;

    @NotBlank(message = "项目名称不能为空")
    @ApiModelProperty("项目名称")
    private String name;

    @ApiModelProperty("项目封面")
    private String image;

    @ApiModelProperty("项目介绍")
    private String introduction;

    @ApiModelProperty("项目金额")
    private BigDecimal price;

    @ApiModelProperty("开始结束时间数组")
    private List<Date> dateValue;

    @ApiModelProperty("项目开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projectStartTime;

    @ApiModelProperty("项目结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projectEndTime;

    @ApiModelProperty("实际结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date realEndTime;

    @ApiModelProperty("成员数量")
    private Integer memberCount;

    @ApiModelProperty("项目进度")
    private BigDecimal schedule;

    @ApiModelProperty("排序")
    private Integer sort;

    @ApiModelProperty("募集金额")
    private BigDecimal raisedAmount;


    @ApiModelProperty("分配方式【1=按金额 2= 按比例】")
    private String allocation;


    @ApiModelProperty("项目状态【1=未开始 2=进行中 3=已结束 4=已取消】")
    private String projectStatus;

    @ApiModelProperty("备注")
    private String remark;

    private String[] imageArr;

    private List<ProjectMember> doctorList;

    public static class ProjectMember {


        private Long id;

        private Long userId;

        private BigDecimal distributeScale;

        public Long getUserId() {
            return userId;
        }

        public void setUserId(Long userId) {
            this.userId = userId;
        }

        public Long getId() {
            return id;
        }

        public void setId(Long id) {
            this.id = id;
        }


        public BigDecimal getDistributeScale() {
            return distributeScale;
        }

        public void setDistributeScale(BigDecimal distributeScale) {
            this.distributeScale = distributeScale;
        }

    }


}
